iT邦幫忙

0

[DAY2] Django與Docker Compose後端開發實戰 - MariaDB與Redis整合與應用

  • 分享至 

  • xImage
  •  

在上一篇技術教學文章中,我們已經介紹了如何建立Django後端應用,並使用Docker Compose將項目打包。本篇文章將會深入介紹如何在Django設定檔中整合MariaDB和Redis,同時對這兩種技術進行說明,以幫助讀者更好地理解它們的用途和優勢。

[DAY1] Django與Docker Compose後端開發實戰 - Django項目的創建與環境設置

MariaDB的引入與配置

MariaDB vs SQLite3

在Django項目中,預設的數據庫是SQLite3,它是一個輕量級的數據庫,適合小型應用和開發階段使用。SQLite3的最大優點是配置簡單,不需要額外的數據庫服務器。然而,當應用需要處理更大的數據量或需要高度的並發支持時,SQLite3可能就顯得力不從心了。

這時候,MariaDB成為了一個優秀的替代方案。作為MySQL的一個分支,MariaDB提供了完整的數據庫服務功能,支持更大的數據量和高並發訪問,非常適合中到大型的應用。它還兼容MySQL的大多數功能,讓遷移更加順暢。

配置MariaDB

  1. 引入必要的模塊並載入環境變量:

    import os
    from dotenv import load_dotenv
    load_dotenv()
    
  2. 更新Django的數據庫設定,切換至MariaDB:

    # MariaDB
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': os.getenv('MYSQL_DATABASE'),
            'USER': os.getenv('MYSQL_USER'),
            'PASSWORD': os.getenv('MYSQL_PASSWORD'),
            'HOST': 'mariadb',
            'PORT': '3306',
        }
    }
    

關於MariaDB的操作和使用,我們將留到後面一點的章節介紹!

Redis的整合與應用

Redis介紹

Redis是一個開源的高性能鍵值對數據庫。它通常用作數據庫、緩存和消息代理。Redis支持多種類型的數據結構如字串、列表、集合、散列等。由於其基於內存的存儲機制,Redis能提供極高的讀寫速度,適合需要快速響應的應用場景,如實時應用、大規模網站的數據緩存等。

配置Redis

  1. 將Redis配置添加至Django的設置中,這樣可以在Django中直接使用Redis作為緩存:

    # Redis
    CACHES = {
        "default": {
            "BACKEND": "django.core.cache.backends.redis.RedisCache",
            "LOCATION": "redis://redis:6379",
            "TIMEOUT": 300,
        }
    }
    
  2. 啟動包含Redis的服務:

    docker-compose -f docker-compose-local.yml up --build -d
    

與Redis的互動

  • 進入Redis容器,檢查連接與基本命令:
    docker exec -it backend-redis redis-cli
    
    SET mykey "Hello, Redis!"
    
    GET mykey
    

從Django與Redis互動

  • 在Django中使用Redis進行緩存操作:
    from django.core.cache import cache
    cache.set('my_key', 'Hello, Django Redis Cache!', 30)
    print(cache.get('my_key'))
    

總結

通過本篇文章的學習,您不僅了解了如何在Django項目中整合MariaDB和Redis,還對這兩種技術的特點和應用場景有了更深的認識。在下一篇文章中,我們將進一步探索如何使用JWT驗證和使用者的管理等

[DAY3] Django與Docker Compose後端開發實戰 - JWT認證與使用者管理


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言